package com.zf.community.service;

/**
 * 点赞相关的接口
 */
public interface LikeService {
    /**
     * 点赞
     *
     * @param userId     用户id
     * @param entityType 实体类型, 1:帖子 2:评论
     * @param entityId   实体id
     */
    void like(int userId, int entityType, int entityId, int entityUserId);

    /**
     * 查询某实体点赞的数量
     *
     * @param entityType 实体类型, 1:帖子 2:评论
     * @param entityId   实体id
     * @return
     */
    long findEntityLikeCount(int entityType, int entityId);

    /**
     * 查询某人对某实体的点赞状态
     *
     * @param userId     用户id
     * @param entityType 实体类型, 1:帖子 2:评论
     * @param entityId   实体id
     * @return 点赞状态, 0:未赞 1:已赞
     */
    int findEntityLikeStatus(int userId, int entityType, int entityId);

    /**
     * 查询某个用户获得的赞的数量
     *
     * @param userId
     * @return
     */
    int findUserLikeCount(int userId);
}
